home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / lib / indent.uem < prev    next >
Text File  |  1995-07-21  |  2KB  |  121 lines

  1. ;    INDENT.CMD:    In/undent region & reformat indented paragraph macros
  2.  
  3. ;    indent region
  4.  
  5. store-procedure    indent
  6.     write-message "[Indenting region]"
  7.     set %endline $curline
  8.     set %endpos $cwline
  9.     exchange-point-and-mark
  10.     set $discmd FALSE
  11.     set-mark
  12.     set $discmd TRUE
  13.  
  14.     !while &gre %endline $curline
  15.         beginning-of-line
  16.         realign-line        ; handle-tab
  17.             previous-line
  18.             detab-line
  19.         ; next-line
  20.     !endwhile
  21.  
  22.     beginning-of-line    
  23.     set $cwline %endpos
  24.     write-message "[Region indented]"
  25. !endm
  26.  
  27. ;    undent region
  28.  
  29. store-procedure    undent
  30.     write-message "[Undenting region]"
  31.     set %endline $curline
  32.     set %endpos $cwline
  33.     exchange-point-and-mark
  34.     set $discmd FALSE
  35.     set-mark
  36.     set $discmd TRUE
  37.  
  38.     !while &gre %endline $curline
  39.         beginning-of-line
  40.         !if &gre $lwidth 0
  41.             -1 realign-line ; delete-next-character
  42.                         previous-line
  43.                         detab-line
  44.         !else
  45.             next-line
  46.                 !endif
  47.     !endwhile
  48.  
  49.     beginning-of-line    
  50.     set $cwline %endpos
  51.     write-message "[Region undented]"
  52. !endm
  53.  
  54. ;    reformat indented paragraph
  55.  
  56. store-procedure refin
  57.     write-message "                    [Fixing paragraph]"
  58.     set %endline $curline
  59.     set $discmd "FALSE"
  60.     kill-region
  61.     2 split-current-window
  62.     select-buffer "[temp]"
  63.     yank
  64.  
  65.     end-of-file
  66.     set %endline $curline
  67.     beginning-of-file
  68.     !while &gre %endline $curline
  69.         beginning-of-line
  70.         !if &gre $lwidth 0
  71.             delete-next-character
  72.         !endif
  73.         next-line
  74.     !endwhile
  75.  
  76.     &sub $fillcol 8 set-fill-column
  77.     1 goto-line
  78.     fill-paragraph
  79.     &add $fillcol 8 set-fill-column
  80.  
  81.     end-of-file
  82.     set %endline $curline
  83.     beginning-of-file
  84.     !while &gre %endline $curline
  85.         beginning-of-line
  86.         handle-tab
  87.         next-line
  88.     !endwhile
  89.  
  90.     beginning-of-file
  91.     set-mark
  92.     end-of-file
  93.     kill-region
  94.     unmark-buffer
  95.     delete-window
  96.     yank
  97.     delete-buffer "[temp]"
  98.     set $cwline %endpos
  99.     set $discmd "TRUE"
  100.     write-message "                    [Fixed paragraph]"
  101. !endm
  102.  
  103.  
  104. ;+ Need to be able to look at count val in macro 
  105. ;+ add another variable 
  106.  
  107. set $discmd TRUE
  108. bind-to-key execute-macro-indent ^X^I
  109. bind-to-key execute-macro-undent ^XU
  110.  
  111. ; testing 
  112. 39 store-macro
  113.     write-message &cat &cat $lastkey "  " &ascii "i"
  114.     !if &equal $lastkey  &ascii "q"
  115.         write-message "matched q"
  116.     !endif
  117.  
  118. !endm
  119. bind-to-key execute-macro-39 ^XQ
  120.  
  121.